package io.gitee.thinkbungee.crud.annotation;

import io.gitee.thinkbungee.enums.QueryEnum;

import java.lang.annotation.*;

/**
 * 查询条件
 * 作用：where条件时 该字段 QueryEnum 数据库对应的值
 * {@code 如：@Query(value = QueryEnum.EQ,where = true,column="user_name") userName}
 * 上述代码翻译为SQL：  where user_name = '前端传递的值' （当该值不为空时才参与where查询）
 * <p>
 * mongo复用 该注解
 *
 * @author chenyichang
 * @date 2022/2/18
 * @see QueryEnum 提供了简单的查询条件
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
public @interface Query {

    /**
     * 查询条件，默认为 等于
     *
     * @return
     */
    QueryEnum value() default QueryEnum.EQ;

    /**
     * 是否参与where条件，默认为true
     *
     * @return
     */
    boolean where() default true;

    /**
     * 对应数据库表中哪个字段
     *
     * @return
     */
    String column() default "";
}
